home *** CD-ROM | disk | FTP | other *** search
/ GameStar 2006 February / Gamestar_81_2006-02_dvd.iso / Red Shark / Common / MissionMenu.script < prev    next >
Encoding:
Text File  |  2001-12-07  |  5.7 KB  |  284 lines

  1. //-------------------------------------------------------------------
  2. //
  3. //  This code is copyright 2001 by G5 Software.
  4. //  Any unauthorized usage, either in part or in whole of this code
  5. //  is strictly prohibited. Violators WILL be prosecuted to the
  6. //  maximum extent allowed by law.
  7. //
  8. //-------------------------------------------------------------------
  9.  
  10. //
  11. //  Mission Menu
  12. //
  13.  
  14. class CMissionMenu extends CBaseMenu
  15. {
  16.   // methods
  17.  
  18.   void CMissionMenu()
  19.   {
  20.   }
  21.  
  22.   string GetMenuType()
  23.   {
  24.     return "MissionMenu";
  25.   }
  26.  
  27.   //
  28.   //  Menu construction happens here
  29.   //
  30.  
  31.   void InitMenu()
  32.   {
  33.     CreateMenuButtonGroup(MenuWidth, MenuSpacing);
  34.  
  35.     float fButtonX      = (1.0 - fButtonWidth) / 2;
  36.     float fButtonY      = 0.2;
  37.  
  38.     //
  39.     //  'Quit to main menu' button
  40.     //
  41.  
  42.     CreateSubMenu(
  43.       str_QuitToMainMenuButton,
  44.       "ID_QUIT_TO_MAIN_MENU",
  45.       fButtonX,
  46.       fButtonY,
  47.       fButtonWidth,
  48.       fButtonHeight,
  49.       "MissionMenu_InitQuitMenu");
  50.  
  51.     fButtonY = fButtonY + fButtonHeight + fVertSpacing;
  52.  
  53.     //
  54.     //  'Resume game' button
  55.     //
  56.  
  57.     CreateTextButton(
  58.       str_BackToTheGameButton,
  59.       "ID_RESUME_GAME",
  60.       fButtonX,
  61.       fButtonY,
  62.       fButtonWidth,
  63.       fButtonHeight);
  64.  
  65.     fButtonY = fButtonY + fButtonHeight + fVertSpacing;
  66.  
  67.     //
  68.     //  'Restart mission' button
  69.     //
  70.  
  71.     CreateSubMenu(
  72.       str_RestartMissionButton,
  73.       "ID_RESTART_MISSION_MENU",
  74.       fButtonX,
  75.       fButtonY,
  76.       fButtonWidth,
  77.       fButtonHeight,
  78.       "MissionMenu_InitRestartMissionMenu");
  79.  
  80.     fButtonY = fButtonY + fButtonHeight + fVertSpacing;
  81.  
  82.     //
  83.     //  Settings button
  84.     //
  85.  
  86.     CreateSubMenu(
  87.       str_SettingsButton,
  88.       "ID_SETTINGS",
  89.       fButtonX,
  90.       fButtonY,
  91.       fButtonWidth,
  92.       fButtonHeight,
  93.       "BaseMenu_InitSettingsMenu");
  94.  
  95.     fButtonY = fButtonY + fButtonHeight + fVertSpacing;
  96.   }
  97.  
  98.   //
  99.   //  Called on user move of menu button
  100.   //
  101.  
  102.   void MenuButtonMoved(string _id)
  103.   {
  104.     BaseMenu_MenuButtonMoved(_id);
  105.   }
  106.  
  107.   //
  108.   //  Called on user click on menu button
  109.   //
  110.  
  111.   void MenuButtonClicked(string _id)
  112.   {
  113.     BaseMenu_MenuButtonClicked(_id);
  114.  
  115.     if ("ID_FINISH_MISSION" == _id)
  116.     {
  117.       Core_SendEventTo(
  118.         SOID_MissionController,
  119.         "OnHideMissionStatus");
  120.  
  121.       Core_SendEventTo(
  122.         SOID_MissionController,
  123.         "OnQuitMission");
  124.  
  125.       Core_SendEventTo(
  126.         SOID_GameController,
  127.         "OnQuitMission");
  128.     }
  129.     else
  130.     if ("ID_SURE_QUIT_TO_MAIN_MENU" == _id)
  131.     {
  132.       Core_SendEventTo(
  133.         SOID_MissionController,
  134.         "OnHideMissionMenu");
  135.  
  136.       Core_SendEventTo(
  137.         SOID_MissionController,
  138.         "OnQuitMission");
  139.  
  140.       Core_SendEventTo(
  141.         SOID_GameController,
  142.         "OnQuitMission");
  143.     }
  144.     else
  145.     if ("ID_RESTART_MISSION" == _id)
  146.     {
  147.       // can be called from mission menu or mission status screen
  148.       Core_SendEventTo(
  149.         SOID_MissionController,
  150.         "OnHideMissionMenu");
  151.  
  152.       // can be called from mission menu or mission status screen
  153.       Core_SendEventTo(
  154.         SOID_MissionController,
  155.         "OnHideMissionStatus");
  156.  
  157.       Core_SendEventTo(
  158.         SOID_MissionController,
  159.         "OnQuitMission");
  160.  
  161.       Core_SendEventTo(
  162.         SOID_GameController,
  163.         "OnRestartMission");
  164.     }
  165.     else
  166.     if ("ID_RESUME_GAME" == _id)
  167.     {
  168.       Core_SendEventTo(SOID_MissionController, "OnHideMissionMenu");
  169.     }
  170.   }
  171.  
  172.   //
  173.   //  Submenus construction
  174.   //
  175.  
  176.   //
  177.   //  Missions menu
  178.   //
  179.  
  180.   void MissionMenu_InitQuitMenu()
  181.   {
  182.     //
  183.     //  Text control with objectives
  184.     //
  185.  
  186.     float fMessageWidth  = GetTextWidth(str_QuitQuestion);
  187.     float fMessageHeight = GetTextHeight(str_QuitQuestion);
  188.  
  189.     CreateTextControl(
  190.       str_QuitQuestion,
  191.       "ID_QUESTION",
  192.       (1.0 - fMessageWidth) / 2,
  193.       0.2,
  194.       fMessageWidth,
  195.       fMessageHeight
  196.     );
  197.  
  198.     CreateMenuButtonGroup(MenuWidth, MenuSpacing);
  199.  
  200.     float fButtonX      = (1.0 - fButtonWidth) / 2;
  201.     float fButtonY      = 0.2 + fMessageHeight + fVertSpacing;
  202.  
  203.     //
  204.     //  Back button
  205.     //
  206.  
  207.     CreateTextButton(
  208.       str_NoButton,
  209.       "ID_BACK",
  210.       fButtonX,
  211.       fButtonY,
  212.       fButtonWidth,
  213.       fButtonHeight);
  214.  
  215.     fButtonY = fButtonY + fButtonHeight + fVertSpacing;
  216.  
  217.     //
  218.     //  Test mission button
  219.     //
  220.  
  221.     CreateTextButton(
  222.       str_YesButton,
  223.       "ID_SURE_QUIT_TO_MAIN_MENU",
  224.       fButtonX,
  225.       fButtonY,
  226.       fButtonWidth,
  227.       fButtonHeight);
  228.  
  229.     fButtonY = fButtonY + fButtonHeight + fVertSpacing;
  230.   }
  231.  
  232.   void MissionMenu_InitRestartMissionMenu()
  233.   {
  234.     //
  235.     //  Text control with objectives
  236.     //
  237.  
  238.     float fMessageWidth  = GetTextWidth(str_QuitQuestion);
  239.     float fMessageHeight = GetTextHeight(str_QuitQuestion);
  240.  
  241.     CreateTextControl(
  242.       str_QuitQuestion,
  243.       "ID_QUESTION",
  244.       (1.0 - fMessageWidth) / 2,
  245.       0.2,
  246.       fMessageWidth,
  247.       fMessageHeight
  248.     );
  249.  
  250.     CreateMenuButtonGroup(MenuWidth, MenuSpacing);
  251.  
  252.     float fButtonX      = (1.0 - fButtonWidth) / 2;
  253.     float fButtonY      = 0.2 + fMessageHeight + fVertSpacing;
  254.  
  255.     //
  256.     //  Back button
  257.     //
  258.  
  259.     CreateTextButton(
  260.       str_NoButton,
  261.       "ID_BACK",
  262.       fButtonX,
  263.       fButtonY,
  264.       fButtonWidth,
  265.       fButtonHeight);
  266.  
  267.     fButtonY = fButtonY + fButtonHeight + fVertSpacing;
  268.  
  269.     //
  270.     //  Test mission button
  271.     //
  272.  
  273.     CreateTextButton(
  274.       str_YesButton,
  275.       "ID_RESTART_MISSION",
  276.       fButtonX,
  277.       fButtonY,
  278.       fButtonWidth,
  279.       fButtonHeight);
  280.  
  281.     fButtonY = fButtonY + fButtonHeight + fVertSpacing;
  282.   }
  283. };
  284.